﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelo.Modulos.ClasesModelado;
using System.Data;

namespace Logica.Modulos.ClasesLogica
{
   public class ProyectoLog:Negocio
    {

       public List<UsuarioMod> ConsultarProjectManager()
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<UsuarioMod> lista = objBD.ConsultarProjectManager(this.comando);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }

       public List<ClientesMod> ConsultarCliente()
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<ClientesMod> lista = objBD.ConsultarCliente(this.comando);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }

       public int InsertarProyecto(ProyectoMod obj)
       {
           int idProyecto;
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();

               idProyecto = objBD.InsertarProyecto(this.comando, obj);

               this.ConfirmarTransaccion();

               return idProyecto;
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }

       public void InsertarProyecto_usuario(ProyectoMod obj)
       {
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();


               objBD.InsertarProyecto_Usuario(this.comando, obj);


               this.ConfirmarTransaccion();
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }

       

       public List<UsuarioMod> ConsultarMiembro(ProyectoMod objs)
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<UsuarioMod> lista = objBD.ConsultarMiembro(this.comando, objs);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }

       public List<ProyectoMod> ConsultarProyectoIdUsuario(ProyectoMod objs)
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<ProyectoMod> lista = objBD.ConsultarProyectoIdUsuario(this.comando, objs);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }
       public List<ProyectoMod> ConsultarProyectoId(ProyectoMod objs)
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<ProyectoMod> lista = objBD.ConsultarProyectoId(this.comando, objs);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }
       public int ConsultarMiembrobyId(ProyectoMod objs)
       {
           try
           {
               int idUsario;
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               idUsario = objBD.ConsultarMiembrobyId(this.comando, objs);

               this.CerrarConexion();

               return idUsario;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }

       public void ActualizarProyectos(ProyectoMod obj)
       {
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();

               objBD.ActualizarProyecto(this.comando, obj);

               this.ConfirmarTransaccion();
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }
       public void EliminarProyectoUsuariobyId(ProyectoMod obj)
       {
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();

               objBD.EliminarProyectoUsuariobyId(this.comando, obj);

               this.ConfirmarTransaccion();
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }
       public void EliminarProyectoUsuario(ProyectoMod obj)
       {
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();

               objBD.EliminarProyectoUsuario(this.comando, obj);

               this.ConfirmarTransaccion();
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }
       public void EliminarProyecto(ProyectoMod obj)
       {
           try
           {
               this.IniciarTransaccion();

               ProyectoBD objBD = new ProyectoBD();

               objBD.EliminarProyecto(this.comando, obj);

               this.ConfirmarTransaccion();
           }
           catch (Exception exc)
           {
               this.DeshacerTransaccion();
               throw exc;
           }
       }

       public List<ProyectoMod> ConsultarProyectos()
       {
           try
           {
               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();

               List<ProyectoMod> lista = objBD.ConsultarProyectos(this.comando);

               this.CerrarConexion();

               return lista;
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }
       public DataTable ConsultarReporteActividades(ProyectoMod obj)
       {
           try
           {

               this.AbrirConexion();

               ProyectoBD objBD = new ProyectoBD();
               
               objBD.ConsultarReporteActividades(this.comando, obj);

               IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
               DataSet ds = new DataSet();
               da.Fill(ds);

               this.CerrarConexion();

               return ds.Tables[0];
           }
           catch (Exception exc)
           {
               this.CerrarConexion();
               throw exc;
           }
       }

    }
}
